package br.com.massai.controller.beans;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.enterprise.context.ConversationScoped;
import javax.faces.model.SelectItem;
import javax.inject.Named;

import br.com.massai.controller.annotation.Login;
import br.com.massai.model.entity.GrupoProducao;
import br.com.massai.model.entity.ItemPlanilha;
import br.com.massai.model.entity.Obra;
import br.com.massai.view.enums.StatusEnum;
import br.com.massai.view.enums.UnidadeMedidaEnum;

@Login
@Named
@ConversationScoped
public class GrupoProducaoBean implements Serializable {

	private static final long serialVersionUID = -1184258035022699305L;

	//PROPERTIES
	private GrupoProducao grupoProducao;
	private GrupoProducao grupoProducaoVinculado;
	private ItemPlanilha itemPlanilha;
	private Obra obra;
	
	//LISTAS
	private List<GrupoProducao> listaGrupoProducao;
	private List<ItemPlanilha> listaItemPlanilha;
	private List<Obra> listaObra;

	public GrupoProducaoBean() { }
	
	@PostConstruct
	public void initialize(){
		grupoProducao = new GrupoProducao();
		itemPlanilha = new ItemPlanilha();
		obra = new Obra();
		grupoProducaoVinculado = new GrupoProducao();
		listaGrupoProducao = new ArrayList<GrupoProducao>();
		listaItemPlanilha = new ArrayList<ItemPlanilha>();
		listaObra = new ArrayList<Obra>();
	}

	public void associarObra(){
		System.out.println(obra.toString());
		//TODO
	}

	public List<SelectItem> status(){
		List<SelectItem> lista = new ArrayList<SelectItem>();
		for(StatusEnum s : StatusEnum.values()){
			lista.add(new SelectItem(s, s.getDescricao()));
		}
		return lista;
	}
	
	public List<SelectItem> unidadeMedida(){
		List<SelectItem> lista = new ArrayList<SelectItem>();
		for(UnidadeMedidaEnum s : UnidadeMedidaEnum.values()){
			lista.add(new SelectItem(s, s.getDescricao()));
		}
		return lista;
	}

	public void pesquisar(){
		//TODO
	}

	public void salvar(){
		//TODO
	}

	public void excluir(){
		//TODO
	}

	public GrupoProducao getGrupoProducao() {
		return grupoProducao;
	}

	public void setGrupoProducao(GrupoProducao grupoProducao) {
		this.grupoProducao = grupoProducao;
	}

	public List<GrupoProducao> getListaGrupoProducao() {
		return listaGrupoProducao;
	}

	public void setListaGrupoProducao(List<GrupoProducao> listaGrupoProducao) {
		this.listaGrupoProducao = listaGrupoProducao;
	}

	public GrupoProducao getGrupoProducaoVinculado() {
		return grupoProducaoVinculado;
	}

	public void setGrupoProducaoVinculado(GrupoProducao grupoProducaoVinculado) {
		this.grupoProducaoVinculado = grupoProducaoVinculado;
	}

	public ItemPlanilha getItemPlanilha() {
		return itemPlanilha;
	}

	public void setItemPlanilha(ItemPlanilha itemPlanilha) {
		this.itemPlanilha = itemPlanilha;
	}

	public List<ItemPlanilha> getListaItemPlanilha() {
		return listaItemPlanilha;
	}

	public void setListaItemPlanilha(List<ItemPlanilha> listaItemPlanilha) {
		this.listaItemPlanilha = listaItemPlanilha;
	}

	public List<Obra> getListaObra() {
		return listaObra;
	}

	public void setListaObra(List<Obra> listaObra) {
		this.listaObra = listaObra;
	}

	public Obra getObra() {
		return obra;
	}

	public void setObra(Obra obra) {
		this.obra = obra;
	}
}